package com.controller;

import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.util.dictUtil.User;
import com.util.dictUtil.DictConvertUtil;

import java.util.Arrays;
import java.util.List;

/**
 * 字典转换工具类
 * @author CHL
 * @ClassName: DictController
 * @Description:
 * @date 2022/2/17 16:38
 * @Version 1.0
 */
public class DictController {


    public static void main(String[] args) {

        // 多字段同时转换
        final User man = User.builder().id(1).sex("男,男,女,男,女").build();
        List<User> sons = Arrays.asList(
                User.builder().id(666).sex("男").name("张三").build(),
                User.builder().id(777).sex("女").name("李四").build(),
                User.builder().id(888).sex("女").name("王五").build()
        );
        man.setMySons(sons);
        final User wife = User.builder().id(2).sex("女").build();
        man.setWife(wife);

        System.out.println("转换之前 = " + JSON.toJSONString(sons));
        // 集合- 汉字转数字
        DictConvertUtil.convertToCodeList(sons,"","");

        // 对象- 汉字转数字
//        DictConvertUtil.convertToCode(man,"","");
        System.out.println("转换之后 = " + JSONUtil.toJsonPrettyStr(JSONUtil.wrap(sons, null)));

        System.out.println("------------------- 分隔线 ---------------------------");

//        final User man1 = User.builder().id(1).sex("1,1,2,1,2").build();
//        List<User> sons1 = Arrays.asList(
//                User.builder().id(666).sex("1").build(),
//                User.builder().id(777).sex("2").build(),
//                User.builder().id(888).sex("2").build()
//        );
//        man1.setMySons(sons1);
//        final User wife1 = User.builder().id(2).sex("2").build();
//        man1.setWife(wife1);
//
//        System.out.println("转换之前 = " + JSON.toJSONString(man1));
//
//        // 集合- 数字转汉字
////        DictConvertUtil.convertToDictionaryList(sons1,"","");
//        // 对象- 数字转汉字
//        DictConvertUtil.convertToDictionary(man1,"","");
//
//        System.out.println("转换之后 = " + JSONUtil.toJsonPrettyStr(JSONUtil.wrap(man1, false)));

    }
}
